#ifndef GTK_GUI_IMPL_HPP_INCLUDED
#define GTK_GUI_IMPL_HPP_INCLUDED

#include "GUI/guiimpl.hpp"
#include <gtk/gtk.h>

class GtkGUIImpl : public GUIImpl
{
public:
	GtkGUIImpl();
	~GtkGUIImpl(){}
	int Init(int argc, char** argv);
	int MainLoop();
	int CreateWindow();

	void Update(const Image& image);
	void DoEvents(int s);

	static GtkGUIImpl *_guiimpl;
		
protected:
	void CreateMenu();
	void CreateImage();
	void CreateControlPanel();

private:
	GtkWidget* m_window;
	GtkWidget* m_main_vbox;
	GtkWidget* m_control_hbox;
	GtkWidget* m_image;
	
	static void on_menu_activate(GtkWidget* item, gpointer data);
	static void m_Start();
	static void m_Quit();
};
#endif // GTK_GUI_IMPL_HPP_INCLUDED
